#pragma once

#include <string>
#include <nlohmann/json.hpp>

/**
 * @brief 用户数据模型
 * 
 * 该结构体表示系统中的用户实体，包含用户的基本信息：
 * - 用户ID
 * - 用户名
 * - 密码
 * - 电子邮件
 * - 最后登录时间
 */
struct User {
    int id = 0;                  ///< 用户唯一标识符
    std::string username;        ///< 用户名
    std::string password;        ///< 用户密码（注意：实际应用中应该存储哈希值）
    std::string email;           ///< 用户电子邮件
    std::string lastLogin;       ///< 最后登录时间

    /**
     * @brief 将用户数据转换为JSON格式
     * 
     * 注意：出于安全考虑，不包含密码字段
     * 
     * @return nlohmann::json JSON对象，包含用户公开信息
     */
    nlohmann::json toJson() const {
        return {
            {"id", id},
            {"username", username},
            {"email", email},
            {"last_login", lastLogin}
        };
    }
}; 